Pulire una stringa dai caratteri non standard
Il linguaggio php consente di gestire con estrema cura le stringhe, ossia le variabili alfanumeriche utilizzate nel codice dello script. Talvolta capita la necessità di ripulire la stringa dai caratteri non standard come parentesi, virgole, punti esclamativi ecc. Ad esempio, un'esigenza simile può capitare se lo script dovrà determinare il nome di file in cui scrivere. Per pulire la stringa da questi caratteri arrivano in aiuto la funzione ereg_replace() e la funzione str_replace(). La funzione ereg_replace() ci permette di sostituire tutti quei caratteri non compresi nel range che indicheremo. Ad esempio, per ottenere una stringa composta soltanto da numeri e caratteri dell'alfabeto maiuscoli o minuscoli, scriveremo:
$stringa = ereg_replace("[^A-Za-z0-9 ]", "", $stringa );
Tutti i caratteri al di fuori del range A-Z, a-z e 0-9 sono sostituiti con un carattere vuoto "", ossia cancellati. Ad esempio, una stringa "forza italia!!!" viene trasformata in "forza italia".
La funzione str_replace ci consente invece di rimuovere tutti quei caratteri accentati che sono compresi nel range a-z ma che sarebbe meglio eliminare nel caso in cui la stringa debba essere utilizzata come nome di file. Per farlo è opportuno sostituire il carattere accentato con la sua equivalente lettera priva di accento.
$stringa = str_replace("à", "a", $stringa);
$stringa = str_replace("è", "e", $stringa);
$stringa = str_replace("é", "e", $stringa);
$stringa = str_replace("ì", "i", $stringa);
$stringa = str_replace("ò", "o", $stringa);
$stringa = str_replace("ù", "u", $stringa);
Volendo unire il tutto in una sola funzione richiamabile da ogni riga di codice dello script scriveremo:
function puliscistringa($stringa)
{
$stringa = str_replace("à", "a", $stringa);
$stringa = str_replace("è", "e", $stringa);
$stringa = str_replace("à", "a", $stringa);
$stringa = str_replace("ì", "i", $stringa);
$stringa = str_replace("ù", "u", $stringa);
$stringa = ereg_replace("[^A-Za-z0-9 ]", "", $stringa );
return $stringa;
}
La funzione può essere richiamata per pulire la stringa in qualsiasi momento torni utile farlo.
$nomefile = puliscistringa($nomefile);
Al termine della subroutine la stringa viene riconsegnata ripulita.
ecomatrix
scrivi al sito
ecomatrix@gmail.com